﻿//-----------------------------------------------------------------------
// <copyright file="IStorageManager.cs" author="Artak Mkrtchyan">
//     Creative Commons - GNU General Public License (http://creativecommons.org/licenses/GPL/2.0/
// </copyright>
// <author>Artak Mkrtchyan</author>
// <email>mkArtak@gmail.com</email>
// <date>08/03/2013</date>
//-----------------------------------------------------------------------

using ConsoleHoster.Common.Model;
using ConsoleHoster.Model.Entities;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace ConsoleHoster.Model
{
    public interface IStorageManager
    {
        void SaveProject(ConsoleProject argProject);

        void UpdateProject(string projectName, ConsoleProject argProject);

        IEnumerable<ConsoleProject> LoadProjects(string argPath);

        IEnumerable<PluginDetails> LoadPlugins();

        void LoadGlobalSettings(out FontSettings argFontSettings, out IEnumerable<CommandData> argCommands);

        void DeleteProject(string argProjectName);

        Task SaveFontSettingsAsync(FontSettings argCurrentFontSettings);

        Task SaveGlobalCommands(IEnumerable<CommandData> argCommands);

        void ExtractProjects(IEnumerable<ConsoleProject> argProjects, string argPath);
    }
}
